{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# DAE solver\n",
    "\n",
    "In this notebook, we show some examples of solving a DAE model. For the purposes of this example, we use the CasADi solver, but the syntax remains the same for other solvers"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m24.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.2\u001b[0m\n",
      "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n",
      "Note: you may need to restart the kernel to use updated packages.\n"
     ]
    }
   ],
   "source": [
    "%pip install \"pybamm[plot,cite]\" -q    # install PyBaMM if it is not installed\n",
    "import os\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "\n",
    "import pybamm\n",
    "\n",
    "os.chdir(pybamm.__path__[0] + \"/..\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Integrating DAEs"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In PyBaMM, a model is solved by calling a solver with solve. This sets up the model to be solved, and then calls the method `_integrate`, which is specific to each solver. We begin by setting up and discretising a model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Create model\n",
    "model = pybamm.BaseModel()\n",
    "u = pybamm.Variable(\"u\")\n",
    "v = pybamm.Variable(\"v\")\n",
    "model.rhs = {u: -v}  # du/dt = -v\n",
    "model.algebraic = {v: 2 * u - v}  # 2*v = u\n",
    "model.initial_conditions = {u: 1, v: 2}\n",
    "model.variables = {\"u\": u, \"v\": v}\n",
    "\n",
    "# Discretise using default discretisation\n",
    "disc = pybamm.Discretisation()\n",
    "disc.process_model(model);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now the model can be solved by calling `solver.solve` with a specific time vector at which to evaluate the solution"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABQkAAAGGCAYAAADYVwfrAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAACPC0lEQVR4nOzdd3hUZfrG8e/MpJNMCKSHSEI39CJNUdHQRBAb4KoUUVfXhugquEqxof4s6IqirAjYAFERBWNBERQEAVF6DTUNCMmQhBQy8/tjYCCSkAkkOSn357rmijnzzjnPGXbx9jnnvK/J4XA4EBERERERERERkVrLbHQBIiIiIiIiIiIiYiw1CUVERERERERERGo5NQlFRERERERERERqOTUJRUREREREREREajk1CUVERERERERERGo5NQlFRERERERERERqOTUJRUREREREREREajk1CUVERERERERERGo5D6MLcIfdbicpKYmAgABMJpPR5YiIiIhUaQ6Hg2PHjhEZGYnZXPOuCSsbioiIiLjP3WxYLZqESUlJREdHG12GiIiISLWyf/9+GjRoYHQZ5U7ZUERERKTsSsuG1aJJGBAQADhPxmq1GlyNiIiISNVms9mIjo52ZaiaRtlQRERExH3uZsNq0SQ89RiJ1WpVEBQRERFxU019FFfZUERERKTsSsuGNW+SGhERERERERERESkTNQlFRERERERERERqOTUJRUREREREREREarlqMSehiIiIVKzCwkIKCgqMLkPc5OnpicViMboMERERqaKU7WqX8sqGahKKiIjUYg6Hg5SUFDIyMowuRcqobt26hIeH19jFSURERKTslO1qr/LIhmoSioiI1GKnQmRoaCh+fn5qOFUDDoeDnJwc0tLSAIiIiDC4IhEREakqlO1qn/LMhmoSioiI1FKFhYWuEFm/fn2jy5Ey8PX1BSAtLY3Q0FA9eiwiIiLKdrVYeWXDMi9csmzZMgYMGEBkZCQmk4kFCxaU+pmlS5fSoUMHvL29adKkCTNnzjyPUiuBvRASl8OG+c6f9kKjKxIREakwp+ap8fPzM7gSOR+n/twqar6hyZMnc8kllxAQEEBoaCiDBg1i27ZtpX7u008/pUWLFvj4+NC6dWsWL15c5H2Hw8H48eOJiIjA19eX+Ph4duzYUSHncEGUC0VEpJpRtqvdyiMblrlJmJ2dTdu2bZk6dapb4xMTE+nfvz89e/Zk/fr1jB49mjvvvJNvv/22zMVWqM0LYUormHUtfDbK+XNKK+d2ERGRGkyPoVRPFf3n9vPPP3Pffffx22+/8f3331NQUEDv3r3Jzs4u8TMrVqzglltuYdSoUfzxxx8MGjSIQYMGsXHjRteYl156iTfeeINp06axatUq6tSpQ58+fcjNza3Q8ykT5UIREanGlO1qp/L4czc5HA7HhRTwxRdfMGjQoBLHPP744yxatKhIOBw6dCgZGRkkJCS4dRybzUZgYCCZmZlYrdbzLbdkmxfCvGHA37+Kk1/w4NkQN7D8jysiImKg3NxcEhMTiY2NxcfHx+hypIzO9edXEdnp0KFDhIaG8vPPP3P55ZcXO2bIkCFkZ2fz9ddfu7Z17dqVdu3aMW3aNBwOB5GRkTzyyCM8+uijAGRmZhIWFsbMmTMZOnSoW7VUaDZULhQRkWpK2a52K49sWOY7Cctq5cqVxMfHF9nWp08fVq5cWdGHdo+9EBIe5+wgyOltCWP1iImIiEgtdPvtt/P8889X+nGHDh3KK6+8UunHPZfMzEwA6tWrV+KY0nJfYmIiKSkpRcYEBgbSpUuXqpENlQtFRESkBPn5+TRp0oQVK1ZU+nFjYmJYs2ZNhR+rwpuEKSkphIWFFdkWFhaGzWbj+PHjxX4mLy8Pm81W5FVh9q4AW9I5BjjAdtA5TkRERGqNP//8k8WLF/Pggw+WOCY9PZ0HHniA5s2b4+vry0UXXcSDDz7oaqidaebMmWfNy7x06VJMJhMZGRlFtj/55JM899xzxe7HCHa7ndGjR3PppZfSqlWrEseVlPtSUlJc75/aVtKY4lRaNlQuFBERqXTuzoO8Z88eRowYUfkFnjRt2jRiY2Pp3r17iWP+/PNPbrnlFqKjo/H19eXiiy/m9ddfL3bsiBEj2LNnT5FtEydOpF27dkW2eXl58eijj/L4449f6CmUqsKbhOdj8uTJBAYGul7R0dEVd7Cs1PIdJyIiIjXCf//7X26++Wb8/f1LHJOUlERSUhIvv/wyGzduZObMmSQkJDBq1CjXmNdee41jx465fj927BivvfbaOY/dqlUrGjduzIcffnjhJ1IO7rvvPjZu3MicOXMMOX6lZUPlQhERkUpX2jzIH330Ebt27XKNdzgcTJ06laNHj1ZajQ6HgzfffLNIxivO2rVrCQ0N5cMPP2TTpk385z//Ydy4cbz55puA8wLz1KlTOXPmv127dvHRRx+dc7+33norv/zyC5s2bbrwkzmHCm8ShoeHk5paNEilpqZitVpdSzT/3bhx48jMzHS99u/fX3EF+oeVPqYs40RERKTC2e12Jk+eTGxsLL6+vrRt25b58+fjcDiIj4+nT58+rvCVnp5OgwYNGD9+PHD67r1FixbRpk0bfHx86Nq1a5H5kwsLC5k/fz4DBgw4Zx2tWrXis88+Y8CAATRu3JirrrqK5557jq+++ooTJ04AEBQURK9evfjll1/45Zdf6NWrF0FBQezZs4eePXu6xphMpiJXxwcMGGBYU+5M999/P19//TU//fQTDRo0OOfYknJfeHi46/1T20oaU5xKy4bKhSIiIpUuISGBESNG0LJlS9q2bcvMmTPZt28fa9euBSA2Npbhw4czbdo0Dhw4QN++fTl48CDe3t4AZGRkcOeddxISEoLVauWqq67izz//BJxzKoeHhxeZPmbFihV4eXmxZMkS4PTde++88w7R0dH4+fkxePDgIk90rF27ll27dtG/f/9znssdd9zB66+/zhVXXEGjRo247bbbGDlyJJ9//jkAPj4+HDx4kL59+3LgwAGmTZvGiBEjiI2NZebMmUyaNIk///wTk8mEyWRyPYUSFBTEpZdeWuHZ0KNC9w5069aNxYsXF9n2/fff061btxI/4+3t7frDrnANu4M1EmzJFD//jMn5fsOSbycVERGpCRwOB8cLjJlrzdfTUqYV2SZPnsyHH37ItGnTaNq0KcuWLeO2224jJCSEWbNm0bp1a9544w0eeugh7rnnHqKiolxNwlP+/e9/8/rrrxMeHs4TTzzBgAED2L59O56envz1119kZmbSqVOnMp/LqQmhPTycMWvEiBFcddVVdO7cGYDVq1dz0UUXUVhYyGeffcaNN97Itm3bzrqA2rlzZ5577jny8vIqLxedweFw8MADD/DFF1+wdOlSYmNjS/1Mt27dWLJkCaNHj3ZtOzP3xcbGEh4ezpIlS1yP0thsNlatWsW9995b4n4rLRuWkgsdmDApF4qISDVRnbLdmf4+D3L37t356aefiI+P59dff+Wrr76iX79+rvE333wzvr6+fPPNNwQGBvLOO+9w9dVXs337dkJCQpgxYwaDBg2id+/eNG/enNtvv53777+fq6++2rWPnTt3Mm/ePL766itsNhujRo3iX//6l+sOv+XLl9OsWTMCAgLO63xOnYufnx/PP/88ixcvZuDAgZw4cYIff/wRT09P2rdvz8aNG0lISOCHH34AnHM3n9K5c2eWL19e5uOXRZmbhFlZWezcudP1e2JiIuvXr6devXpcdNFFjBs3joMHDzJ79mwA7rnnHt58800ee+wx7rjjDn788UfmzZvHokWLyu8sLoTZAn1fPLmKnYkzA6EDk3Mdu74vOMeJiIjUYMcLCokb/60hx978dB/8vNyLJXl5eTz//PP88MMPruZTo0aN+OWXX3jnnXf4+OOPeeeddxg2bBgpKSksXryYP/74w9W0O2XChAn06tULgFmzZtGgQQO++OILBg8ezN69e7FYLISGhpbpPA4fPswzzzzD3Xff7dr24Ycf8uabb7quPA8ePJj777+f2267zRUYQ0NDqVu3bpF9RUZGkp+fT0pKCg0bNixTHeXhvvvu4+OPP+bLL78kICDANWdgYGCgq5k5bNgwoqKimDx5MgAPPfQQV1xxBa+88gr9+/dnzpw5rFmzhnfffRcAk8nE6NGjefbZZ2natCmxsbE89dRTREZGMmjQoEo/x7OcIxfaHWAyoVwoIiLVRnXJdmcqbh7kVatW8e9//5vu3bvj6enJlClTWLlyJU888QRr1qxh9erVpKWluS4ovvzyyyxYsID58+dz9913c80113DXXXdx66230qlTJ+rUqePKLqfk5uYye/ZsoqKiAOe0M/379+eVV14hPDycvXv3EhkZWebzWbFiBXPnznX1wHJzc3n++edZtWoVV155JZ06dSI+Pp7/+7//o3Pnzvj7++Ph4VHsExaRkZHs3bu3zDWURZkfN16zZg3t27enffv2AIwZM4b27du7rs4nJyezb98+1/jY2FgWLVrE999/T9u2bXnllVf43//+R58+fcrpFMpB3EAYPBusEUU2p5nqY795lvN9ERERqRJ27txJTk4OvXr1wt/f3/WaPXu2a76am2++meuvv54XXniBl19+maZNm561nzOfaqhXrx7Nmzdny5YtABw/fhxvb+8iV8Cff/75Isc7M++A8464/v37ExcXx8SJE13b09LS+P777+nRowc9evTg+++/Jy0trdTzPNWIy8nJcf/LKUdvv/02mZmZXHnllURERLhec+fOdY3Zt28f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pk2bhp+fHzNmzCh2/IoVK7j00kv5xz/+QUxMDL179+aWW24p9e7D2qBpWAA3d4wGYPLirTgcDoMrEhERERGjXN40mEub1Ce/0M4r320zuhwRERGpZcrUJMzPz2ft2rXEx8ef3oHZTHx8PCtXriz2M927d2ft2rWupuDu3btZvHgx11xzTYnHycvLw2azFXnVVA/3aoa3h5k1e4/y7aZUo8sREREREYOYTCbG9nXOW71gfRIbDmQaXJGIiIjUJmVqEh4+fJjCwkLCwsKKbA8LCyMlJaXYz/zjH//g6aef5rLLLsPT05PGjRtz5ZVXnvNx48mTJxMYGOh6RUdHl6XMaiU80Ic7e8QCMPmbLeSdKDS4IhERERExSusGgVzXLhKAZ77erCdNREREpNJU+OrGS5cu5fnnn+ett95i3bp1fP755yxatIhnnnmmxM+MGzeOzMxM12v//v0VXaah7r2yCSEB3uw9ksPsFXuNLkdEREREDPRY3xZ4e5hZvSedhI3FX4gXERERKW9lahIGBwdjsVhITS36WGxqairh4eHFfuapp57i9ttv584776R169Zcf/31PP/880yePBm73V7sZ7y9vbFarUVeNZm/tweP9m4GwBs/7iA9O9/gikRERETEKFF1fbn78kYATP5mq540ERERkUpRpiahl5cXHTt2ZMmSJa5tdrudJUuW0K1bt2I/k5OTg9lc9DAWiwVAj0+c4aaO0cRFWDmWe4IpP2w3uhwRERERMdA9VzQmNMCbfek5zFqxx+hyREREpBYo8+PGY8aMYfr06cyaNYstW7Zw7733kp2dzciRIwEYNmwY48aNc40fMGAAb7/9NnPmzCExMZHvv/+ep556igEDBriahQIWs4knr3VOVP3Rqn3sSD1mcEUiIiIiYpQ63h482qc5AP9dspMjWXkGVyQiIiI1nUdZPzBkyBAOHTrE+PHjSUlJoV27diQkJLgWM9m3b1+ROweffPJJTCYTTz75JAcPHiQkJIQBAwbw3HPPld9Z1BDdGwfTKy6M7zen8tziLcwc2dnokkRERETEIDd1aMCsFXvYlGTjtR+28+yg1kaXJCIiIjWYyVENnvm12WwEBgaSmZlZ4+cnTDycTe/Xfqag0MGsOzpzRbMQo0sSERGRaqamZ6eafn5n+m33EYa++xtmEySMvpxmYQFGlyQiIiLVjLvZqcJX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",
      "text/plain": [
       "<Figure size 1300x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Solve #################################\n",
    "t_eval = [0, 2]\n",
    "dae_solver = pybamm.IDAKLUSolver()\n",
    "solution = dae_solver.solve(model, t_eval)\n",
    "#########################################\n",
    "\n",
    "# Extract u and v\n",
    "t_sol = solution.t\n",
    "u = solution[\"u\"]\n",
    "v = solution[\"v\"]\n",
    "\n",
    "# Plot\n",
    "t_fine = np.linspace(0, t_eval[-1], 1000)\n",
    "\n",
    "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(13, 4))\n",
    "ax1.plot(t_fine, np.exp(-2 * t_fine), t_sol, u(t_sol), \"o\")\n",
    "ax1.set_xlabel(\"t\")\n",
    "ax1.legend([\"exp(-2*t)\", \"u\"], loc=\"best\")\n",
    "\n",
    "ax2.plot(t_fine, 2 * np.exp(-2 * t_fine), t_sol, v(t_sol), \"o\")\n",
    "ax2.set_xlabel(\"t\")\n",
    "ax2.legend([\"2*exp(-2*t)\", \"v\"], loc=\"best\")\n",
    "\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Note that, where possible, the solver makes use of the mass matrix and jacobian for the model. However, the discretisation or solver will have created the mass matrix and jacobian algorithmically, using the expression tree, so we do not need to calculate and input these manually."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The solution terminates at the final simulation time:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'final time'"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "solution.termination"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Events\n",
    "\n",
    "It is possible to specify events at which a solution should terminate. This is done by adding events to the `model.events` dictionary. In the following example, we solve the same model as before but add a termination event when `v=-0.2`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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Ga8sGzZsIDQ0lI8//pitW7fyn//8hwkTJjBt2jTAfoF5+vTpnDnz3969e/nkk0/Oetzhw4fz66+/snXr1gs/mbOo9iZheHg4qaklg1RqaioBAQGOJZr/bsKECWRmZjpehw4dqr4C/cLOPaYy40RERKTaWa1WpkyZQmxsLN7e3nTq1IlFixZhs9mIj4+nX79+jvCVnp5O48aNmThxInD67r2lS5fSsWNHvLy8uPTSS0vMn2yxWFi0aBGDBg06ax3t27fn888/Z9CgQTRr1ow+ffrw/PPP8/XXX1NUVARAgwYNuOaaa/j111/59ddfueaaa2jQoAH79++nd+/ejjEGg6HE1fFBgwY5rSl3pvvvv59vvvmGn3/+mcaNG591bHm5Lzw83PH9qW3ljSlLjWVD5UIREZEal5CQwKhRo2jXrh2dOnVi9uzZHDx4kA0bNgAQGxvLyJEjmTFjBocPH6Z///4cOXIET09PADIyMrjrrrsICQkhICCAPn368OeffwL2OZXDw8NLTB+zevVqPDw8WL58OXD67r13332X6OhofHx8GDp0aIknOjZs2MDevXsZOHDgWc/lzjvv5I033uDKK6+kadOm3H777YwePZovvvgCAC8vL44cOUL//v05fPgwM2bMYNSoUcTGxjJ79myefvpp/vzzTwwGAwaDwfEUSoMGDbjsssuqPRu6VevRgR49erBs2bIS23744Qd69OhR7j6enp6Ov+xq16QnBESCOZmy558x2L9vUv7tpCIiIq7AZrNxstA5c615u5sqtSLblClT+Pjjj5kxYwYtWrRg5cqV3H777YSEhDBnzhw6dOjAm2++yUMPPcQ999xDVFSUo0l4yv/93//xxhtvEB4ezhNPPMGgQYPYtWsX7u7u/PXXX2RmZtKtW7dKn8upCaHd3Owxa9SoUfTp04fu3bsDsG7dOi666CIsFguff/45N910Ezt37ix1AbV79+48//zz5Ofn11wuOoPNZuOBBx7gyy+/ZMWKFcTGxp5znx49erB8+XIefvhhx7Yzc19sbCzh4eEsX77c8SiN2Wxm7dq13HvvveUet8ay4TlyoQ0DBuVCERGpI+pStjvT3+dB7tmzJz///DPx8fH89ttvfP311wwYMMAx/uabb8bb25tvv/2WwMBA3n33Xa6++mp27dpFSEgIs2bNYsiQIfTt25dWrVpxxx13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",
      "text/plain": [
       "<Figure size 1300x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Create model\n",
    "model = pybamm.BaseModel()\n",
    "u = pybamm.Variable(\"u\")\n",
    "v = pybamm.Variable(\"v\")\n",
    "model.rhs = {u: -v}  # du/dt = -v\n",
    "model.algebraic = {v: 2 * u - v}  # 2*v = u\n",
    "model.initial_conditions = {u: 1, v: 2}\n",
    "model.events.append(pybamm.Event(\"v=0.2\", v - 0.2))  # adding event here\n",
    "\n",
    "model.variables = {\"u\": u, \"v\": v}\n",
    "\n",
    "# Discretise using default discretisation\n",
    "disc = pybamm.Discretisation()\n",
    "disc.process_model(model)\n",
    "\n",
    "# Solve #################################\n",
    "t_eval = [0, 2]\n",
    "dae_solver = pybamm.IDAKLUSolver()\n",
    "solution = dae_solver.solve(model, t_eval)\n",
    "#########################################\n",
    "\n",
    "# Extract u and v\n",
    "t_sol = solution.t\n",
    "u = solution[\"u\"]\n",
    "v = solution[\"v\"]\n",
    "\n",
    "# Plot\n",
    "t_fine = np.linspace(0, t_eval[-1], 1000)\n",
    "\n",
    "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(13, 4))\n",
    "ax1.plot(t_fine, np.exp(-2 * t_fine), t_sol, u(t_sol), \"o\")\n",
    "ax1.set_xlabel(\"t\")\n",
    "ax1.legend([\"exp(-2*t)\", \"u\"], loc=\"best\")\n",
    "\n",
    "ax2.plot(\n",
    "    t_fine,\n",
    "    2 * np.exp(-2 * t_fine),\n",
    "    t_sol,\n",
    "    v(t_sol),\n",
    "    \"o\",\n",
    "    t_fine,\n",
    "    0.2 * np.ones_like(t_fine),\n",
    "    \"k\",\n",
    ")\n",
    "ax2.set_xlabel(\"t\")\n",
    "ax2.legend([\"2*exp(-2*t)\", \"v\", \"v = 0.2\"], loc=\"best\")\n",
    "\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now the solution terminates because the event has been reached"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'event: v=0.2'"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "solution.termination"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Finding consistent initialization\n",
    "\n",
    "The solver will fail if initial conditions that are inconsistent with the algebraic equations are provided. However, before solving the DAE solvers automatically use `_set_consistent_initialization` to obtain consistent initial conditions, starting from a guess of bad initial conditions, using a simple root-finding algorithm. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "y0_guess=[1. 1.]\n",
      "y0_fixed=[1, 2]\n"
     ]
    }
   ],
   "source": [
    "# Create model\n",
    "model = pybamm.BaseModel()\n",
    "u = pybamm.Variable(\"u\")\n",
    "v = pybamm.Variable(\"v\")\n",
    "model.rhs = {u: -v}  # du/dt = -v\n",
    "model.algebraic = {v: 2 * u - v}  # 2*v = u\n",
    "model.initial_conditions = {u: 1, v: 1}  # bad initial conditions, solver fixes\n",
    "model.events.append(pybamm.Event(\"v=0.2\", v - 0.2))\n",
    "model.variables = {\"u\": u, \"v\": v}\n",
    "\n",
    "# Discretise using default discretisation\n",
    "disc = pybamm.Discretisation()\n",
    "disc.process_model(model)\n",
    "print(f\"y0_guess={model.concatenated_initial_conditions.evaluate().flatten()}\")\n",
    "\n",
    "dae_solver = pybamm.IDAKLUSolver()\n",
    "dae_solver.set_up(model)\n",
    "dae_solver._set_consistent_initialization(model, 0, {})\n",
    "print(f\"y0_fixed={model.y0}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## References\n",
    "\n",
    "The relevant papers for this notebook are:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1] Joel A. E. Andersson, Joris Gillis, Greg Horn, James B. Rawlings, and Moritz Diehl. CasADi – A software framework for nonlinear optimization and optimal control. Mathematical Programming Computation, 11(1):1–36, 2019. doi:10.1007/s12532-018-0139-4.\n",
      "[2] Charles R. Harris, K. Jarrod Millman, Stéfan J. van der Walt, Ralf Gommers, Pauli Virtanen, David Cournapeau, Eric Wieser, Julian Taylor, Sebastian Berg, Nathaniel J. Smith, and others. Array programming with NumPy. Nature, 585(7825):357–362, 2020. doi:10.1038/s41586-020-2649-2.\n",
      "[3] Valentin Sulzer, Scott G. Marquis, Robert Timms, Martin Robinson, and S. Jon Chapman. Python Battery Mathematical Modelling (PyBaMM). Journal of Open Research Software, 9(1):14, 2021. doi:10.5334/jors.309.\n",
      "\n"
     ]
    }
   ],
   "source": [
    "pybamm.print_citations()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "env",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.7"
  },
  "vscode": {
   "interpreter": {
    "hash": "19e5ebaa8d5a3277b4deed2928f02ad0cad6c3ab0b2beced644d557f155bce64"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
